package abd.pr2.bd;

import javax.xml.xquery.XQDataSource;
import javax.xml.xquery.XQException;
import javax.xml.xquery.XQPreparedExpression;
import javax.xml.xquery.XQResultSequence;

import net.xqj.exist.ExistXQDataSource;

import org.w3c.dom.Element;

import abd.pr2.model.Usuario;

public class ConsultaUsuariosMasActivos extends ConsultaAbstracta<Usuario> {
	private static final String ARCHIVO_CONSULTA_XQUERY = "2.xquery";
	
	public ConsultaUsuariosMasActivos(XQDataSource xqds) {
		super(xqds);
		this.nombreArchivo = ARCHIVO_CONSULTA_XQUERY;
	}

	public static void main(String[] args){
		
		XQDataSource xqs = new ExistXQDataSource();
		try {
			xqs.setProperty("serverName", "localhost");
			xqs.setProperty("port", "8080");
		} catch (XQException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		//XQConnection con = xqs.getConnection("admin", "eXist");
		
		new ConsultaUsuariosMasActivos(xqs).ejecuta();
	}

	@Override
	public void addBinds(XQPreparedExpression exp) throws XQException {}

	@Override
	public Usuario buildObject(XQResultSequence rs) throws XQException {
		org.w3c.dom.Element	elementosXML = (org.w3c.dom.Element)rs.getObject();
		return new Usuario(elementosXML.getAttribute("nombre"),Integer.parseInt(elementosXML.getAttribute("numero_comentarios")));
	}
	
}
